\section*{Aufgabe 1}

\subsection*{Aufgabenstellung}
Zur Verlinkung von Daten in XTunes ist es sinnvoll, eindeutige IDs
erzeugen zu können, wo solche IDs noch nicht existieren. Dazu bietet
es sich an, sogenannte UUIDs (http://en.wikipedia.org/wiki/UUID) zu
verwenden. Java hat im Paket utils eine Klasse UUID, mit der man UUIDs
erzeugen kann.

\subsection*{Lösungsansatz}
\subsubsection*{Lösungsansatz 1}
Wir wollten versuchen das Saxon Paket um eine Funktion zur UUID
Generierung erweitern. Dazu versuchten wir zuerst die Open Source
Version des Saxon Prozessors zu kompilieren. Dabei stellte sich
heraus, dass der Funktionsumfang des Open Source Prozessors im
Vergleich zur Enterprise und Professional Lösung eingeschränkt
ist. Z.B: ist es nicht möglich XSLT 2.0 zu verwenden, was bedeuted,
dass ein Befehl wie for-each-group nicht funktioniert. Dies hätte uns
sehr wahrscheinlich bei den weitern Aufgaben behindert, weshalb wir
uns für den zweiten Lösungsansatz entschieden haben.
\subsubsection*{Lösungsansatz 2}
In XQuery und XSLT ist es möglich über die Definition von Namespaces
direkt auf eine Java Funktion zuzugreifen. Dadurch erspart man sich
eine aufwendige Neukompilierung des Prozessors. Der Namespace, den man
hierbei einbindet lautet: java.util.UUID.

\subsection*{Lösung}
Das folgende Code-Beispiele legt dar, wie die jeweiligen Konstrukte XQuery aussehen.\\
\lstinputlisting[caption=Namespece Definition, firstnumber=7, linerange=7-7]{../Aufgabe1/TestUUID.xquery}
\lstinputlisting[caption=Generieren einer UUID in XQuery, firstnumber=10, linerange=10-10]{../Aufgabe1/TestUUID.xquery}
Das folgende Code-Beispiele legt dar, wie die jeweiligen Konstrukte XQuery aussehen.\\
\lstinputlisting[caption=Generieren einer UUID in XSLT, firstnumber=9, linerange=9-9]{../Aufgabe1/TestUUID.xslt}
\lstinputlisting[caption=Generieren einer UUID in XSLT, firstnumber=15, linerange=15-15]{../Aufgabe1/TestUUID.xslt}
